#include <cstdio>
#include <algorithm>
using namespace std;
const int N=100050;
int a[N];
int b[N];
int main(void){
    //-1 0 1 2
    int n,x;
    int ans=-1;
    scanf("%d%d",&n,&x);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    sort(a,a+n);
    for(int i=1;i<n;i++){
        if(a[i]==a[i-1]){
            ans=0;
            break;
        }
    }
    if(ans==-1){
        for(int i=0;i<n;i++){
            b[i]=a[i]&x;
            int k=lower_bound(a,a+n,b[i])-a;
            if(a[k]==b[i] && i!=k){
                ans=1;
                break;
            }
        }
    }
    if(ans==-1){
        sort(b,b+n);
        for(int i=1;i<n;i++){
            if(b[i]==b[i-1]){
                ans=2;
                break;
            }
        }
    }
    printf("%d\n",ans);
    return 0;
}
